package com.piggy.logi.sys.bo;

import com.piggy.common.core.annotation.Excel;
import com.piggy.common.core.web.domain.BaseTenantEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
import javax.validation.constraints.*;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;

/**
 * 调度线路分段费用编辑对象 logi_schedule_fee
 *
 * @author piggy
 * @date 2023-09-13
 */
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true)
@ApiModel("调度线路分段费用编辑对象")
public class LogiScheduleFeeEditBo extends BaseTenantEntity {


    /** 调度费用配置id */
    @ApiModelProperty("调度费用配置id")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long id;

    /** 调度车次ID */
    @ApiModelProperty("调度车次ID")
    @NotNull(message = "调度车次ID不能为空")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long scheduleId;

    /** 线路id */
    @ApiModelProperty("线路id")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long lineId;

    /** 计费方式 */
    @ApiModelProperty("计费方式")
    @NotBlank(message = "计费方式不能为空")
    private String feeMode;

    /** 结算方式 */
    @ApiModelProperty("结算方式")
    @NotBlank(message = "结算模式不能为空")
    private String settleMode;

    /** 出发网点 */
    @ApiModelProperty("出发网点")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long depDeptId;

    /** 到达网点 */
    @ApiModelProperty("到达网点")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long desDeptId;

    /** 返款 */
    @ApiModelProperty("返款")
    @NotNull(message = "返款不能为空")
    private BigDecimal refund;

    /** 现付 */
    @ApiModelProperty("现付")
    @NotNull(message = "现付不能为空")
    private BigDecimal cod;

    /** 到付 */
    @ApiModelProperty("到付")
    @NotNull(message = "到付不能为空")
    private BigDecimal pod;

    /** 欠付 */
    @ApiModelProperty("欠付")
    @NotNull(message = "欠付不能为空")
    private BigDecimal poa;

    /** 会付 */
    @ApiModelProperty("会付")
    @NotNull(message = "会付不能为空")
    private BigDecimal pom;

    /** 月结 */
    @ApiModelProperty("月结")
    @NotNull(message = "月结不能为空")
    private BigDecimal ms;

    /** 应付运输费 */
    @ApiModelProperty("应付运输费")
    private BigDecimal apFrt;

    /** 应付其它费 */
    @ApiModelProperty("应付其它费")
    private BigDecimal apOther;

    /** 现付油卡 */
    @ApiModelProperty("现付油卡")
    private BigDecimal codGascard;

    /** 预计发车时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("预计发车时间")
    private Date estDepartTime;

    /** 预计到达时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("预计到达时间")
    private Date estArriveTime;

    /** 更新者 */
    @ApiModelProperty("更新者")
    private String updateBy;

    /** 更新时间 */
    @ApiModelProperty("更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    /** 备注 */
    @ApiModelProperty("备注")
    private String remark;
}
